package com.yanfan.maintain.domain;

import com.yanfan.energy.domain.CheckListBody;
import com.yanfan.energy.domain.RouteListBody;
import com.yanfan.energy.domain.model.ComboBoxBody;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 巡检计划表(InspectionPlan)实体类
 *
 * @author makejava
 * @since 2023-03-10 10:15:24
 */
@Getter
@Setter
@ToString
public class InspectionPlan implements Serializable {
    private static final long serialVersionUID = -71288144130940440L;
    /**
     * 主键
     */
    private Long id;
    /**
     * 巡检单号
     */
    private String oddNumber;
    /**
     * 巡检计划名称
     */
    private String name;
    /**
     * 是否定期巡检（true：定期巡检，false：临时巡检）
     */
    private Integer regular;
    /**
     * 巡检规则（1、时，2、周，3、日）
     */
    private Integer rule;
    /**
     * 巡检周期
     */
    private String periodDate;
    /**
     * 巡检路线id
     */
    private Long routeId;
    /**
     * 巡检项数
     */
    private Integer number;
    /**
     * 巡检人员
     */
    private Long executor;
    /**
     * 负责人
     */
    private Long principal;
    /**
     * 联系方式
     */
    private String telephone;
    /**
     * 创建人
     */
    private String createdBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createdDate;
    /**
     * 修改时间
     */
    private Date lastModifiedDate;
    /**
     * 巡检路线名称
     *
     * @author caijinkang
     * @date 2023/3/13 11:31
     * @param null
     * @return null
     */
    private String routeName;
    /**
     * 打卡路线层级
     *
     * @author caijinkang
     * @date 2023/3/13 11:31
     * @param null
     * @return null
     */
    private String clockingTier;
    /**
     * 打卡点层级展示
     *
     * @author caijinkang
     * @date 2023/3/9 16:36
     * @param null
     * @return null
     */
    private Map mapTier;
    /**
     * 打卡点下检查项层级展示
     *
     * @author caijinkang
     * @date 2023/3/13 11:40
     * @param null
     * @return null
     */
    private Map mapTierB;
    /**
     * 图片
     *
     * @author caijinkang
     * @date 2023/3/15 14:00
     * @param null
     * @return null
     */
    private List<ComboBoxBody> img_url;
    /**
     * 开始时间
     *
     * @author caijinkang
     * @date 2023/3/21 16:24
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginDate;
    /**
     * 结束时间
     *
     * @author caijinkang
     * @date 2023/3/21 16:25
     * @param null
     * @return null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;
    /**
     * 路线list
     *
     * @author caijinkang
     * @date 2023/3/21 17:18
     * @param null
     * @return null
     */
    private List<RouteListBody> routeLists;
    /**
     * 是否定期巡检（1、定期，0、临时）
     *
     * @author caijinkang
     * @date 2023/3/22 17:16
     * @param null
     * @return null
     */
    private String regularName;
    /**
     * 巡检规则（1、时，2、周，3、日）
     *
     * @author caijinkang
     * @date 2023/3/22 17:16
     * @param null
     * @return null
     */
    private String ruleName;
    /**
     * 详情列表
     *
     * @author caijinkang
     * @date 2023/3/22 18:19
     * @param null
     * @return null
     */
    private List<CheckListBody> checkListBodies;
    /**
     * 路线列表
     *
     * @author caijinkang
     * @date 2023/4/6 10:09
     * @param null
     * @return null
     */
    private InspectionRoute inspectionRoute;
    /**
     * 定时时间（存储上一次生成的beginDate时间）
     *
     * @author caijinkang
     * @date 2023/4/6 15:55
     * @param null
     * @return null
     */
    private Date timingDate;

    private Integer pageNum;

    private Integer pageSize;

    private Integer total;

}

